var CustomerNotice = function() {
	customerNoticeThis = this;
	customerNoticeThis.noticeListCount = 1;
	//리스트를 한묶음씩만 불러오는 변수
	customerNoticeThis.noticeCurrentPages = 1;
	//불러온 리스트의 카운트 역할을 하는 변수
	customerNoticeThis.noticeGetListCount = 10;
	//화면에 리스트를 몇개씩 뿌려줄지 결정하는 변수
	customerNoticeThis.noticeCounter = 10;
	//리스트를 몇개씩 불러올지 결정한 후 더보기 버튼을 눌렀을 때 noticeGetListCount + noticeCounter 를 이용해서 한번더 10개를 불러올수 있게 하기 위한 변
	customerNoticeThis.noticeJsonData = null;
	//json data를 저장하는 변수
	customerNoticeThis.canRequestData = true;
	//더보기 버튼을 눌렀을때 리퀘스트를 두번 보내는 것을 방지하기 위한 BOOLEAN 변수
}

CustomerNotice.prototype = {
	requestNotice : function() {
		customerNoticeThis.canRequestData = false;
		//요청이 진행되는 동안에는 더보기 버튼을 누를수 없게 함

		var mj = new MJson();
		var cm = new ConnectionManager();
		mj.putPub(MJson.PUB.SID, "MB001");
		mj.putPub(MJson.PUB.SERVICENAME, "getNoticeList");

		mj.putPub(MJson.PUB.LISTCOUNT, customerNoticeThis.noticeListCount);
		mj.putPub(MJson.PUB.CURRPAGENO, customerNoticeThis.noticeCurrentPages);

		cm.requestGet(mj.getJsonString(), function(jsonData) {
			if (mj.checkServiceResult(jsonData)) {
				console.log('성공::통신');
				//console.log(JSON.stringify(jsonData));
				customerNoticeThis.noticeJsonData = jsonData;

				if (customerNoticeThis.noticeJsonData.msp.contents.items == undefined) {
					//불러온 데이터의 totalcount가 0이면 재귀함수를 종료함
					console.log(':::::::::::::::::::::::재귀함수 종료::::::::::::::::::::::');
					var itemNull = '<li class="no_list"><p>해당 목록이 없습니다.</p></li>';
					$("#noticeListTag").append(itemNull);
					$("#noticeListTag").listview('refresh');
					$("#moreNoticeListBtn").hide();
					return;
				}

				//----------------화면에 셀 출력 시작----------------------------//
				var qnaTimeText = "";
				qnaTimeText = new String(customerNoticeThis.noticeJsonData.msp.contents.items.reg__date);
				qnaTimeText = qnaTimeText.substr(0, 4) + "." + qnaTimeText.substr(4, 2) + "." + qnaTimeText.substr(6, 2);

				var spanState;

				if (customerNoticeThis.noticeJsonData.msp.contents.items.notice__type__code == "A") {
					spanState = '<div class="part"><span class="state_ok">공지</span><time>' + qnaTimeText + '</time></div>';
				} else if (customerNoticeThis.noticeJsonData.msp.contents.items.notice__type__code == "B") {
					spanState = '<div class="part"><span class="state_ing">뉴스</span><time>' + qnaTimeText + '</time></div>';
				} else if (customerNoticeThis.noticeJsonData.msp.contents.items.notice__type__code == "C") {
					spanState = '<div class="part"><span class="state_ev">이벤트</span><time>' + qnaTimeText + '</time></div>';
				}

				var qnaTitleText = customerNoticeThis.noticeJsonData.msp.contents.items.title;
				var liHead = '<li value="' + customerNoticeThis.noticeJsonData.msp.contents.items.board__seq + '"><a href="notice_view.html" data-transition="slide">';
				var qnaTitles = '<div class="sub">' + qnaTitleText + '</div>';
				var liFoot = '</a></li>';

				var cell = liHead + spanState + qnaTitles + liFoot;
				$("#noticeListTag").append(cell);
				$("#noticeListTag").listview('refresh');
				//----------------화면에 셀 출력 끝----------------------------//

				customerNoticeThis.onListLoad();

				console.log('화면 표시 진행 :: 화면에 ' + customerNoticeThis.noticeCurrentPages + '개 출력');
				console.log("currentPage :: " + customerNoticeThis.noticeCurrentPages + "ListCount :: " + customerNoticeThis.noticeGetListCount);

				customerNoticeThis.noticeCurrentPages++;
				// 현재 화면에 몇개의 셀이 출력되었는지 확인하기 위한 변수
				if (customerNoticeThis.noticeCurrentPages <= customerNoticeThis.noticeGetListCount) {
					//재귀함수 호출 전 다음번 리스트를 지정하기 위한 연산
					customerNoticeThis.requestNotice();
					//조건을 만족할때 까지 재귀함수 실행
				} else {
					console.log('화면 표시 종료 :: 화면에 ' + customerNoticeThis.noticeCurrentPages + '개 출력');
					customerNoticeThis.canRequestData = true;
				}

			}
		}, function(e) {
			console.log('실패:통신');
		});
	},

	onPageShow : function() {
		console.log(this);
		var noticeOnPageShowThis = this;
		customerNoticeThis.noticeListCount = 1;
		//리스트를 한묶음씩만 불러오는 변수(두개이상 불러오면 배열로 처리하게 되는 상황을 방지하기 위한 꼼수)
		customerNoticeThis.noticeCurrentPages = 1;
		//불러온 리스트의 카운트 역할을 하는 변수
		customerNoticeThis.noticeGetListCount = 10;
		//화면에 리스트를 몇개씩 뿌려줄지 결정하는 변수
		customerNoticeThis.noticeJsonData = null;
		//json data를 저장하는 변수
		noticeOnPageShowThis.requestNotice();
		//처음 로드될때 서버에 데이터 요청
		customerNoticeThis.canRequestData = true;
		//더보기 버튼을 눌렀을때 리퀘스트를 두번 보내는 것을 방지하기 위한 BOOLEAN 변수

		$("#moreNoticeListBtn").bind('click', function(event) {
			if (customerQnaThis.canRequestData == true) {
				customerNoticeThis.noticeGetListCount = customerNoticeThis.noticeCounter + customerNoticeThis.noticeGetListCount;
				noticeOnPageShowThis.requestNotice();
			}
			//더보기 버튼 클릭하면 서버에 데이터 요청
		});
		$("#goCustomer_notice").bind('click', function(event) {
			console.log('goCustomerAnchor');
			$.mobile.changePage("customer.html");
		});
		$("#goQnaWrite_notice").bind('click', function(event) {
			$.mobile.changePage("qna_write.html");
		});
		$("#goQna_notice").bind('click', function(event) {
			$.mobile.changePage("qna.html");
		});
	},
	onListLoad : function() {
		$("#noticeListTag").find("li").bind('click', function(event) {
			document.globalObj.NOTICE_DATA.notice_seq = event.currentTarget.value;
			console.log(document.globalObj.NOTICE_DATA.notice_seq);
		});
	}
};
